package com.quectel.emp.vo.scheduling;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 *
 * @author ryan
 * @email ryan.ran@quectel.com
 * @date 2023/07/27 14:51
 */
@Data
@Schema
public class GroupAttendanceStatisticsResp {
    /**
    * 请假人数
    */
    @Schema(description = "请假人数")
    private Integer leavePersonCount;

    /**
    * 出差人数
    */
    @Schema(description = "出差人数")
    private Integer tripPersonCount;

    /**
    * 外出人数
    */
    @Schema(description = "外出人数")
    private Integer outPersonCount;

    /**
    * 加班人数
    */
    @Schema(description = "加班人数")
    private Integer workOvertimePersonCount;

    /**
    * 组迟到计数
    */
    @Schema(description = "组迟到计数")
    private Integer groupLateCount;

    /**
    * 组早退计数
    */
    @Schema(description = "组早退计数")
    private Integer groupEarlyCount;

    /**
    * 组缺卡计数
    */
    @Schema(description = "组缺卡计数")
    private Integer groupLakeCount;

    /**
     * 组正常计数
     */
    @Schema(description = "组正常计数")
    private Integer groupNormalCount;

    /**
     * 应出勤天数
     */
    @Schema(description = "应出勤天数")
    private Integer attendanceDay;

    /**
    * 实际出勤天数
    */
    @Schema(description = "实际出勤天数")
    private Integer realityAttendanceDay;

    /**
     * 出勤率
     */
    @Schema(description = "出勤率")
    private BigDecimal attendanceRate;

    /**
     * 异常员工统计
     */
    @Schema(description = "异常员工统计 只保留异常员工 已异常数排序（非异常率）")
    private List<AbnormalPersonCls> abnormalPersons;

    @Data
    @Schema
    public static class AbnormalPersonCls{
        @Schema(description = "员工id")
        private Long personId;
        @Schema(description = "员工名称")
        private String personName;
        @Schema(description = "员工工号")
        private String personJobNo;
        @Schema(description = "员工头像")
        private String personFaceImg;
        @Schema(description = "员工迟到计数")
        private Integer lateCount;
        @Schema(description = "员工早退计数")
        private Integer earlyCount;
        @Schema(description = "员工缺卡计数")
        private Integer lakeCount;
        @Schema(description = "员工正常计数")
        private Integer normalCount;
        @Schema(description = "异常率")
        private BigDecimal abnormalRate;
    }

}
